package com.cloud.generator.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.cloud.generator.domain.GenTable;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业务 数据层
 *
 * @author yzj
 */
@Mapper
public interface GenTableMapper {

    /**
     * 查询业务列表
     *
     * @param param 业务信息
     * @return 业务集合
     */
    @DS("master")
    public List<GenTable> selectGenTableList(@Param("param") GenTable param);

    /**
     * 查询据库列表
     *
     * @param genTable 业务信息
     * @return 数据库表集合
     */
    @DS("operate")
    public List<GenTable> selectDbTableList(@Param("param") GenTable genTable);

    /**
     * 查询据库列表
     *
     * @param tableNames 表名称组
     * @return 数据库表集合
     */
    @DS("operate")
    public List<GenTable> selectTableListByNames(@Param("tableNames") List<String> tableNames);

    /**
     * 查询所有表信息
     *
     * @return 表信息集合
     */
    @DS("master")
    public List<GenTable> selectAllGenTable();

    /**
     * 查询表ID业务信息
     *
     * @param tableId 业务ID
     * @return 业务信息
     */
    @DS("master")
    public GenTable selectGenTableById(@Param("tableId") Long tableId);

    /**
     * 查询表名称业务信息
     *
     * @param tableName 表名称
     * @return 业务信息
     */
    @DS("master")
    public GenTable selectGenTableByName(@Param("tableName") String tableName);

    /**
     * 新增业务
     *
     * @param genTable 业务信息
     * @return 结果
     */
    @DS("master")
    public int insertGenTable(GenTable genTable);

    /**
     * 修改业务
     *
     * @param genTable 业务信息
     * @return 结果
     */
    @DS("master")
    public int updateGenTable(GenTable genTable);

    /**
     * 批量删除业务
     *
     * @param tableIds 需要删除的数据ID
     * @return 结果
     */
    @DS("master")
    public int deleteGenTableByIds(@Param("tableIds") Long[] tableIds);

}
